#ifndef PIECE_H
#define PIECE_H

#include <GL/gl.h>

#include "../coup.h"
#include "../couleur.h"
#include "type.h"

class Partie;

class Piece {
    protected:
        Partie * parent;
        int x, y;
        Type type;
        Couleur couleur;
    public:
        Piece(Partie * parent, int x, int y, Couleur couleur);
        virtual ~Piece() {}

        virtual GLint getLid() = 0;

        virtual void calculDeplacements(bool suppr_echecs=true) = 0;

        int getX();
        int getY();
        Type getType();
        Couleur getCouleur();

        void setX(int x);
        void setY(int y);

    protected:
        void ajouterCoup(bool suppr_echecs, int x, int y, Coup coup);

};

#endif
